The invention disclosed herein relates generally to optimal, error-detecting, and/or error-correcting coding and other coding and processing, particularly for bar codes, and methods and apparatus therefor. More particularly, the invention relates to optimal bar codes, methods and apparatus for coding information represented by bar codes, methods and apparatus for processing information represented by bar codes, and methods and apparatus for detecting and correcting errors in information represented by bar codes. The invention further relates to methods and apparatus for machine reading bar codes. The invention also relates to detection of objects that either are unauthorized per se or are unauthorized as to their possession. The invention also relates to signals and coding in equipment and in information storage and transfer and use.
The invention and its background are described with particular reference to bar codes. However, the invention has wider application and it is not intended to limit the scope of the invention by such reference to bar codes. For example, the invention has application to the coding of signals and detecting and correcting of errors in fields such as communication, computers, data processing, data storage, mathematics and in other fields.
Bar codes provide a relatively simple and inexpensive way of inputting information to systems and equipment either fully automatically or semi-automatically with a minimum of manual effort. Bar codes are also an easy way for people to interact with systems and equipment. The use of bar codes has been expanding rapidly, from supermarkets to package pick-up and delivery control, to consumer use in programming VCRs, etc.
A bar code may be thought of as a specialized alphabet, or font, coded for machines to read (in the graphic arts, a font is a complete alphabet in a particular style and size, used for the purpose of setting type for printing plates). While the underlying function of type typically is readability, typestyles help convey mood, emotion, meaning, atmosphere and emphasis.
On the other hand, the primary function of a bar code "font" is to reliably provide information as efficiently as possible for a machine to read, particularly from paper. Unlike people, machines do not require variety and usually are more complex if they are to work with variety. Additionally, variety increases the possibility of error. The primary, and perhaps sole, criterion for judging a bar code is its performance, e.g., its information capacity for a given size, whether it possesses error correcting and/or error detecting, and if so, its error detecting and correcting ability (abbreviated as "EDAC"), etc.
Underlying the value of bar codes is their extremely low cost: they may be printed on plain paper, for example, and may be read with inexpensive scanners. They may be printed on labels affixed to articles, or otherwise associated with articles, and efficiently and inexpensively machine read. Perhaps no other computer-related technology can compare cost-wise to bar codes.
As they relate to computers and equipment and systems including a computer, bar codes are the printed language of computers and allow computers to acquire information automatically by machine reading bar codes, just as people acquire their information from reading print. Bar codes and computers increase the accuracy and dramatically decrease the cost of acquiring information. Because of computers, information is already the chief product and building block of modern society. However, few have begun to realize the impact that the combination of bar codes and computers will have in science, industry and society.
Although bar codes are already becoming vital to industry, they are not as reliable as they can and should be. More important is the recognition by applicants that today's bar codes do not fulfill their function efficiently: they do not contain information that they could or should, they occupy too much space for the information they do contain, and they occupy valuable space that is needed or could be used for other purposes.
For example, the Universal Product Code ("UPC") bar code used on products sold in supermarkets provides little information, identifying only the manufacturer and product identity, and the version of UPC used. Applicants recognize that bar codes should include additional useful information such as: date of manufacture; shelf life; place of manufacture; intended distribution route; batch number; government specs; size, weight, color, wattage, etc.; safety, health, ingredients, precautions, dosage, etc. information; pricing, discount, commission, tax and other accounting information; automatic reordering instructions; serial numbers, and so forth.
While today's popular codes may be able to individually identify about a million (UPC Version E) different consumer articles in a relatively small code, they have reached their limit in many growing applications. For practical reasons, today's codes cannot be used to identify certain smaller objects; they cannot be used to identify larger numbers of objects; they are subject to being misread if damaged or poorly printed; and, they have disappointing first time read rates. Moreover, today's bar codes are not a practical option for providing additional valuable information: they do not have the information capacity required in today's Information Age.
Many different bar code "fonts" are being used in thousands of applications. The underlying methodology of today's popular bar codes (UPC and Code 39 being the two most popular) was invented and "standardized" in the late 1960's, early 1970's, well before the "PC generation" and the development and use of sophisticated, inexpensive lasers, for both printing and reading devices.
Today's optical bar codes are typically comprised of contrasting stripes, e.g., black stripes printed on a white background, which create the familiar black and white stripe patterns of common bar codes, sometimes called "zebra codes." These stripes, or code elements, vary in width and several stripes are selected to create distinct patterns of stripes which are used to represent decimal digits or decimal digits and alphabetic characters to reading apparatus. Applicants in their U.S. Pat. No. 4,814,589 disclose a bar code coded directly in binary arithmetic. Among other things, optimal and error-correcting binary arithmetic bar codes are disclosed herein.
Today's bar codes associate different patterns of varying width stripes with decimal digits or decimal digits and characters of the alphabet. The different patterns are selected to be readily distinguishable by a reading apparatus. Today's approach is complicated and cumbersome. It needlessly limits the usefulness of today's bar codes.
The key to continued growth and new benefits from bar codes lies in optimizing bar code design. To continue to be competitive, bar codes must be improved over those developed many years ago under the constraints of technology that no longer exist.
Present bar codes and bar code reading equipment suffer from poor first time read rates, i.e., the frequency with which a particular bar code using given apparatus must be re-read in order to input its information. Thus, present bar codes and bar code reading equipment have the disadvantage that frequently a bar code has to be read more than once before it is recognized as a good read by the equipment. A good example is the UPC code and supermarket scanners. Frequently a check-out person may be required to pass a product over the scanner several times before the equipment accepts the bar coded information. Such poor first time read rates of todays bar codes and equipment delay entry of bar coded information, which compromises the reasons that bar codes are in wide use today: speed, ease and reliability of information inputting to processing or storage apparatus.
Many of the problems and deficiencies described above with reference to bar codes applies as well to coding, processing and transfer of information in general. Thus, the use of parity for error detecting, Hamming codes for error correcting and other current techniques for error detecting and correcting are often inadequate, complex, require more extensive hardware, and/or reduce other performance criteria such as speed or information handling capability of the equipment or method using them.
Counterfeit products, lottery tickets, casino chips, tokens, currency, etc. now diverts billions of dollars annually from legitimate businesses and government, and the problem of counterfeits is worsening. Current attempted solutions such as the use of holograms for credit cards and special paper and inks for currency are based on the difficulty of counterfeiters to make exact copies. However, given the steady advance of technology, what can be made with authorization can be copied, for example by reverse engineering, or can simply be made with unauthorized assistance or unauthorized access to the pertinent technology. Applicants' U.S. Pat. No. 4,814,589 discloses solutions to the counterfeit problem based on accountability. However, more can be done to detect and deter counterfeiting, and also to detect and deter crime based on unauthorized possession of products and currency.